package com.kymatrix.mpo.plus.bpm.server.service;

import com.kymatrix.mpo.plus.bpm.server.model.entity.definition.BpmProcessListenerEntity;
import com.kymatrix.mpo.plus.bpm.server.model.form.listener.PageQueryBpmProcessListenerReq;
import com.kymatrix.mpo.plus.bpm.server.model.form.listener.SaveBpmProcessListenerReq;
import com.kymatrix.mpo.plus.bpm.server.model.form.listener.UpdateBpmProcessListenerReq;
import com.kymatrix.mpo.plus.common.business.common.PageResp;
import javax.validation.Valid;

/**
 * BPM 流程监听器 Service 接口
 */
public interface BpmProcessListenerService {

    /**
     * 创建流程监听器
     *
     * @return 编号
     */
    String createProcessListener(@Valid SaveBpmProcessListenerReq req);

    /**
     * 更新流程监听器
     *
     * @param updateReqVO 更新信息
     */
    void updateProcessListener(@Valid UpdateBpmProcessListenerReq updateReqVO);

    /**
     * 删除流程监听器
     *
     * @param id 编号
     */
    void deleteProcessListener(String id);

    /**
     * 获得流程监听器
     *
     * @param id 编号
     * @return 流程监听器
     */
    BpmProcessListenerEntity getProcessListener(String id);

    /**
     * 获得流程监听器分页
     *
     * @return 流程监听器分页
     */
    PageResp<BpmProcessListenerEntity> getProcessListenerPage(PageQueryBpmProcessListenerReq req);

}
